{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "629c902e-6cd0-4475-b6ce-5d6e37d7e2f3",
   "metadata": {},
   "source": [
    "# Distributed MNIST with MLX and Kubeflow Trainer\n",
    "\n",
    "This Notebook will show how to run distributed MLX on Kubernetes with Kubeflow Trainer.\n",
    "\n",
    "The MLX runtime uses `mlx[cuda]` package to run distributed training on GPUs.\n",
    "\n",
    "MLX Distributed: https://ml-explore.github.io/mlx/build/html/usage/distributed.html"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3cb9ab4c8e12221a",
   "metadata": {},
   "source": [
    "## Install the Kubeflow SDK\n",
    "\n",
    "You need to install the Kubeflow SDK to interact with Kubeflow Trainer APIs:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bd62189280760f42",
   "metadata": {},
   "outputs": [],
   "source": [
    "# !pip install -U kubeflow"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "143ab709-ba3c-41b2-8afa-983b1b6b6d06",
   "metadata": {},
   "source": [
    "## Install the MLX Dependencies\n",
    "\n",
    "You also need to install MLX packages to evaluate the trained model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f8719fe2-a033-486b-80d6-13d5e4e4d752",
   "metadata": {},
   "outputs": [],
   "source": [
    "!pip install \"mlx>=0.28.0\"\n",
    "!pip install \"mlx-data>=0.1.0\"\n",
    "!pip install \"matplotlib>=3.10.5\""
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b5ad0e01-d893-484c-8988-d25c2f322b80",
   "metadata": {},
   "source": [
    "## Create MLX training script\n",
    "\n",
    "We need to wrap our training script into a function to create Kubeflow TrainJob.\n",
    "\n",
    "This is the simple MLP model to recognize digits from the MNIST dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "57952ce1-5752-4976-8a35-c71d25935b74",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-10-18T00:21:01.668317Z",
     "iopub.status.busy": "2025-10-18T00:21:01.667831Z",
     "iopub.status.idle": "2025-10-18T00:21:01.689055Z",
     "shell.execute_reply": "2025-10-18T00:21:01.688660Z",
     "shell.execute_reply.started": "2025-10-18T00:21:01.668293Z"
    }
   },
   "outputs": [],
   "source": [
    "def mlx_train_mnist(bucket: str, model_name: str):\n",
    "    import time\n",
    "    from functools import partial\n",
    "    import mlx.core as mx\n",
    "    import mlx.nn as nn\n",
    "    import mlx.optimizers as optim\n",
    "    from mlx.data.datasets import load_mnist\n",
    "    import boto3\n",
    "\n",
    "    # Define a simple MLP model with MLX.\n",
    "    class MLP(nn.Module):\n",
    "        def __init__(\n",
    "            self, in_dims: int, hidden_dims: int, num_layers: int, out_dims: int\n",
    "        ):\n",
    "            super().__init__()\n",
    "            layer_sizes = [in_dims] + [hidden_dims] * num_layers + [out_dims]\n",
    "            self.layers = [\n",
    "                nn.Linear(idim, odim)\n",
    "                for idim, odim in zip(layer_sizes[:-1], layer_sizes[1:])\n",
    "            ]\n",
    "\n",
    "        def __call__(self, x):\n",
    "            for layer in self.layers[:-1]:\n",
    "                x = nn.relu(layer(x))\n",
    "            return self.layers[-1](x)\n",
    "\n",
    "    # Initializer MLX distributed backend.\n",
    "    dist = mx.distributed.init(strict=True, backend=\"mpi\")\n",
    "    world_size = dist.size()\n",
    "    rank = dist.rank()\n",
    "    print(f\"Start Distributed Training, WORLD_SIZE: {world_size}, RANK: {rank}\")\n",
    "\n",
    "    if rank == 0:\n",
    "        print(\"Download MNIST dataset\")\n",
    "\n",
    "    # Load MNIST dataset and partition it.\n",
    "    BATCH_SIZE = 128\n",
    "    train_dataset = load_mnist()\n",
    "\n",
    "    distributed_ds = (\n",
    "        train_dataset.shuffle()\n",
    "        .partition_if(world_size > 1, world_size, rank)\n",
    "        .key_transform(\"image\", lambda x: (x.astype(\"float32\") / 255.0).ravel())\n",
    "    )\n",
    "\n",
    "    # Create the MLP model and SGD optimizer\n",
    "    model = MLP(\n",
    "        in_dims=distributed_ds[0][\"image\"].shape[-1],\n",
    "        hidden_dims=32,\n",
    "        num_layers=2,\n",
    "        out_dims=10,\n",
    "    )\n",
    "    optimizer = optim.SGD(learning_rate=0.01)\n",
    "\n",
    "    # Define function to calculate loss and accuracy.\n",
    "    def loss_fn(model, x, y):\n",
    "        output = model(x)\n",
    "        loss = mx.mean(nn.losses.cross_entropy(output, y))\n",
    "        acc = mx.mean(mx.argmax(output, axis=1) == y)\n",
    "        return loss, acc\n",
    "\n",
    "    # Define single training step.\n",
    "    @partial(mx.compile, inputs=model.state, outputs=model.state)\n",
    "    def step(x, y):\n",
    "        loss_and_grad_fn = nn.value_and_grad(model, loss_fn)\n",
    "        (loss, acc), grads = loss_and_grad_fn(model, x, y)\n",
    "        # Average grads to aggregate them across distributed nodes.\n",
    "        grads = nn.utils.average_gradients(grads)\n",
    "        optimizer.update(model, grads)\n",
    "        return loss, acc\n",
    "\n",
    "    # Average statistic across distributed nodes.\n",
    "    def average_stats(stats, count):\n",
    "        with mx.stream(mx.cpu):\n",
    "            stats = mx.distributed.all_sum(mx.array(stats))\n",
    "            count = mx.distributed.all_sum(count)\n",
    "            return (stats / count).tolist()\n",
    "\n",
    "    # Start distributed training.\n",
    "    if rank == 0:\n",
    "        print(\"Start MLX training\")\n",
    "    for epoch in range(15):\n",
    "        epoch_start = time.perf_counter()\n",
    "        losses = accuracies = count = 0\n",
    "\n",
    "        for batch_idx, batch_sample in enumerate(distributed_ds.batch(BATCH_SIZE)):\n",
    "            x = mx.array(batch_sample[\"image\"])\n",
    "            y = mx.array(batch_sample[\"label\"])\n",
    "            loss, acc = step(x, y)\n",
    "            mx.eval(loss, acc, model.state)\n",
    "\n",
    "            losses += loss.item()\n",
    "            accuracies += acc.item()\n",
    "            count += 1\n",
    "\n",
    "            # Print the results.\n",
    "            if batch_idx % 10 == 0:\n",
    "                loss, acc = average_stats([losses, accuracies], count)\n",
    "                if rank == 0:\n",
    "                    print(\n",
    "                        \"Epoch: {} [{}/{} ({:.0f}%)] \\tTrain loss: {:.3f}, acc: {:.3f}\".format(\n",
    "                            epoch,\n",
    "                            batch_idx * len(x),\n",
    "                            len(train_dataset),\n",
    "                            100.0 * batch_idx * len(x) / len(train_dataset),\n",
    "                            loss,\n",
    "                            acc,\n",
    "                        )\n",
    "                    )\n",
    "        if rank == 0:\n",
    "            print(\n",
    "                \"Epoch: {}, time: {:.2f} seconds\\n\\n\".format(\n",
    "                    epoch, time.perf_counter() - epoch_start\n",
    "                )\n",
    "            )\n",
    "\n",
    "    # Finally, export model to S3.\n",
    "    if rank == 0:\n",
    "        print(\"Exporting MNIST model to S3\")\n",
    "        model.save_weights(model_name)\n",
    "        boto3.client(\"s3\").upload_file(model_name, bucket, model_name)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "875abc44-69dd-41d8-bb2a-436f730a2dd0",
   "metadata": {},
   "source": [
    "## Get the MLX Runtime\n",
    "\n",
    "You can list the available Kubeflow Trainer runtimes with the `list_runtimes()` API.\n",
    "\n",
    "The name of MLX runtime is `mlx-distributed`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "51d8bc1d-8d9b-48f7-866f-c6ad4ad4241b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-10-18T00:21:02.840985Z",
     "iopub.status.busy": "2025-10-18T00:21:02.840686Z",
     "iopub.status.idle": "2025-10-18T00:21:04.608666Z",
     "shell.execute_reply": "2025-10-18T00:21:04.607847Z",
     "shell.execute_reply.started": "2025-10-18T00:21:02.840963Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Name: mlx-distributed, Framework: mlx, Trainer Type: CustomTrainer\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from kubeflow.trainer import TrainerClient, CustomTrainer\n",
    "\n",
    "for r in TrainerClient().list_runtimes():\n",
    "    if r.name == \"mlx-distributed\":\n",
    "        print(f\"Name: {r.name}, Framework: {r.trainer.framework}, Trainer Type: {r.trainer.trainer_type.value}\\n\")\n",
    "        mlx_runtime = r"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "206c389d-9dcb-474f-b0f5-cc098de2e183",
   "metadata": {},
   "source": [
    "## Create TrainJob for Distributed Training\n",
    "\n",
    "Use the `train()` API to create distributed TrainJob on **3 GPUs**. Every MPI training node uses 1 GPU.\n",
    "\n",
    "**Note:** Update the S3 bucket name."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "cabf303b-bd93-4737-9aef-a1e7f262d915",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-10-18T00:21:11.266142Z",
     "iopub.status.busy": "2025-10-18T00:21:11.265842Z",
     "iopub.status.idle": "2025-10-18T00:21:11.269635Z",
     "shell.execute_reply": "2025-10-18T00:21:11.269032Z",
     "shell.execute_reply.started": "2025-10-18T00:21:11.266119Z"
    }
   },
   "outputs": [],
   "source": [
    "# BUCKET = \"Add your S3 bucket\"\n",
    "MODEL = \"mnist.npz\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "76dab189-f184-4e48-be74-f32c0dea675b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-10-18T00:21:12.239334Z",
     "iopub.status.busy": "2025-10-18T00:21:12.239066Z",
     "iopub.status.idle": "2025-10-18T00:21:13.465106Z",
     "shell.execute_reply": "2025-10-18T00:21:13.463727Z",
     "shell.execute_reply.started": "2025-10-18T00:21:12.239313Z"
    }
   },
   "outputs": [],
   "source": [
    "args = {\"bucket\": BUCKET, \"model_name\": MODEL}\n",
    "\n",
    "job_id = TrainerClient().train(\n",
    "    trainer=CustomTrainer(\n",
    "        func=mlx_train_mnist,\n",
    "        func_args=args,\n",
    "        num_nodes=3,\n",
    "        packages_to_install=[\"boto3\"],\n",
    "        resources_per_node={\n",
    "            \"gpu\": 1\n",
    "        },\n",
    "    ),\n",
    "    runtime=mlx_runtime,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "6e1811dd-4bf2-40cf-ad35-35a87271eb21",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-10-18T00:21:13.510948Z",
     "iopub.status.busy": "2025-10-18T00:21:13.510535Z",
     "iopub.status.idle": "2025-10-18T00:21:13.517894Z",
     "shell.execute_reply": "2025-10-18T00:21:13.516928Z",
     "shell.execute_reply.started": "2025-10-18T00:21:13.510903Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'vd59b4f8583c'"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Train API generates a random TrainJob id.\n",
    "job_id"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f0864121-895f-4e5a-87b8-7ea2d92e6630",
   "metadata": {},
   "source": [
    "## Check the TrainJob Info\n",
    "\n",
    "Use the `list_jobs()` and `get_job()` APIs to get information about created TrainJob and its steps."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "8a945930-6cfe-4388-8ab8-462474f3f21f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-10-18T00:21:18.959745Z",
     "iopub.status.busy": "2025-10-18T00:21:18.959451Z",
     "iopub.status.idle": "2025-10-18T00:21:20.928561Z",
     "shell.execute_reply": "2025-10-18T00:21:20.927909Z",
     "shell.execute_reply.started": "2025-10-18T00:21:18.959722Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "TrainJob: vd59b4f8583c, Status: Created, Created at: 2025-10-18 00:21:13+00:00\n"
     ]
    }
   ],
   "source": [
    "for job in TrainerClient().list_jobs():\n",
    "    print(f\"TrainJob: {job.name}, Status: {job.status}, Created at: {job.creation_timestamp}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "75e8c741-6d31-49a2-8667-d38e40d62430",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-10-18T00:21:31.350340Z",
     "iopub.status.busy": "2025-10-18T00:21:31.349959Z",
     "iopub.status.idle": "2025-10-18T00:21:33.102518Z",
     "shell.execute_reply": "2025-10-18T00:21:33.101563Z",
     "shell.execute_reply.started": "2025-10-18T00:21:31.350314Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Step: node-0, Status: Running, Devices: gpu x 1\n",
      "\n",
      "Step: node-1, Status: Running, Devices: gpu x 1\n",
      "\n",
      "Step: node-2, Status: Running, Devices: gpu x 1\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# We execute mpirun command on node-0, which functions as the MPI Launcher node.\n",
    "for c in TrainerClient().get_job(name=job_id).steps:\n",
    "    print(f\"Step: {c.name}, Status: {c.status}, Devices: {c.device} x {c.device_count}\\n\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d4fa3ea2-bdf5-40ca-a9ec-cc948949ea59",
   "metadata": {},
   "source": [
    "## Get the TrainJob Logs\n",
    "\n",
    "Use the `get_job_logs()` API to retrieve the TrainJob logs.\n",
    "\n",
    "Since we distribute the dataset across 3 GPUs, each rank processes `round(60,000 / 3) = 20,000` samples."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "6e630fd3-f061-4fea-8024-7bffcefb257c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-10-18T00:21:41.581757Z",
     "iopub.status.busy": "2025-10-18T00:21:41.581474Z",
     "iopub.status.idle": "2025-10-18T00:23:07.448504Z",
     "shell.execute_reply": "2025-10-18T00:23:07.447479Z",
     "shell.execute_reply.started": "2025-10-18T00:21:41.581731Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Warning: Permanently added '[vd59b4f8583c-node-0-1.vd59b4f8583c]:2222' (ECDSA) to the list of known hosts.\n",
      "Warning: Permanently added '[vd59b4f8583c-node-0-0.vd59b4f8583c]:2222' (ECDSA) to the list of known hosts.\n",
      "Start Distributed Training, WORLD_SIZE: 3, RANK: 0\n",
      "Download MNIST dataset\n",
      "Start Distributed Training, WORLD_SIZE: 3, RANK: 1\n",
      "Start Distributed Training, WORLD_SIZE: 3, RANK: 2\n",
      "Downloading https://raw.githubusercontent.com/fgnt/mnist/master/train-images-idx3-ubyte.gz |███████████████████████████████████     | 8.2MiB / 9.5MiB (134.8MiB/s)  \n",
      "Downloading https://raw.githubusercontent.com/fgnt/mnist/master/train-images-idx3-ubyte.gz 9.5MiB (147.3MiB/s)                                                      \n",
      "Downloading https://raw.githubusercontent.com/fgnt/mnist/master/train-images-idx3-ubyte.gz 9.5MiB (119.3MiB/s)                                                      \n",
      "Downloading https://raw.githubusercontent.com/fgnt/mnist/master/t10k-images-idx3-ubyte.gz |█                                       | 32.0KiB / 1.6MiB (3.9MiB/s)   \n",
      "Downloading https://raw.githubusercontent.com/fgnt/mnist/master/t10k-images-idx3-ubyte.gz 1.6MiB (35.0MiB/s)                                                       \n",
      "Downloading https://raw.githubusercontent.com/fgnt/mnist/master/t10k-images-idx3-ubyte.gz 1.6MiB (35.3MiB/s)                                                       \n",
      "Downloading https://raw.githubusercontent.com/fgnt/mnist/master/train-labels-idx1-ubyte.gz 32.0KiB (17.1MiB/s)                                                     \n",
      "Downloading https://raw.githubusercontent.com/fgnt/mnist/master/train-labels-idx1-ubyte.gz 32.0KiB (18.4MiB/s)                                                     \n",
      "Downloading https://raw.githubusercontent.com/fgnt/mnist/master/t10k-labels-idx1-ubyte.gz 8.0KiB (54.3MiB/s)                                               \n",
      "Downloading https://raw.githubusercontent.com/fgnt/mnist/master/train-labels-idx1-ubyte.gz 32.0KiB (18.5MiB/s)                                                     \n",
      "Downloading https://raw.githubusercontent.com/fgnt/mnist/master/t10k-labels-idx1-ubyte.gz 8.0KiB (53.5MiB/s)                                               \n",
      "Downloading https://raw.githubusercontent.com/fgnt/mnist/master/t10k-labels-idx1-ubyte.gz 8.0KiB (56.3MiB/s)                                               \n",
      "Start MLX training\n",
      "Epoch: 0 [0/60000 (0%)] \tTrain loss: 2.310, acc: 0.086\n",
      "Epoch: 0 [1280/60000 (2%)] \tTrain loss: 2.309, acc: 0.100\n",
      "Epoch: 0 [2560/60000 (4%)] \tTrain loss: 2.308, acc: 0.100\n",
      "Epoch: 0 [3840/60000 (6%)] \tTrain loss: 2.310, acc: 0.097\n",
      "Epoch: 0 [5120/60000 (9%)] \tTrain loss: 2.310, acc: 0.098\n",
      "Epoch: 0 [6400/60000 (11%)] \tTrain loss: 2.309, acc: 0.098\n",
      "Epoch: 0 [7680/60000 (13%)] \tTrain loss: 2.309, acc: 0.100\n",
      "Epoch: 0 [8960/60000 (15%)] \tTrain loss: 2.309, acc: 0.100\n",
      "Epoch: 0 [10240/60000 (17%)] \tTrain loss: 2.308, acc: 0.102\n",
      "Epoch: 0 [11520/60000 (19%)] \tTrain loss: 2.308, acc: 0.103\n",
      "Epoch: 0 [12800/60000 (21%)] \tTrain loss: 2.307, acc: 0.104\n",
      "Epoch: 0 [14080/60000 (23%)] \tTrain loss: 2.307, acc: 0.105\n",
      "Epoch: 0 [15360/60000 (26%)] \tTrain loss: 2.307, acc: 0.105\n",
      "Epoch: 0 [16640/60000 (28%)] \tTrain loss: 2.307, acc: 0.105\n",
      "Epoch: 0 [17920/60000 (30%)] \tTrain loss: 2.306, acc: 0.106\n",
      "Epoch: 0 [19200/60000 (32%)] \tTrain loss: 2.306, acc: 0.106\n",
      "Epoch: 0, time: 29.13 seconds\n",
      "\n",
      "\n",
      "Epoch: 1 [0/60000 (0%)] \tTrain loss: 2.299, acc: 0.115\n",
      "Epoch: 1 [1280/60000 (2%)] \tTrain loss: 2.298, acc: 0.126\n",
      "Epoch: 1 [2560/60000 (4%)] \tTrain loss: 2.297, acc: 0.126\n",
      "Epoch: 1 [3840/60000 (6%)] \tTrain loss: 2.299, acc: 0.122\n",
      "Epoch: 1 [5120/60000 (9%)] \tTrain loss: 2.299, acc: 0.123\n",
      "Epoch: 1 [6400/60000 (11%)] \tTrain loss: 2.298, acc: 0.122\n",
      "Epoch: 1 [7680/60000 (13%)] \tTrain loss: 2.298, acc: 0.124\n",
      "Epoch: 1 [8960/60000 (15%)] \tTrain loss: 2.298, acc: 0.124\n",
      "Epoch: 1 [10240/60000 (17%)] \tTrain loss: 2.297, acc: 0.126\n",
      "Epoch: 1 [11520/60000 (19%)] \tTrain loss: 2.296, acc: 0.127\n",
      "Epoch: 1 [12800/60000 (21%)] \tTrain loss: 2.296, acc: 0.128\n",
      "Epoch: 1 [14080/60000 (23%)] \tTrain loss: 2.296, acc: 0.129\n",
      "Epoch: 1 [15360/60000 (26%)] \tTrain loss: 2.296, acc: 0.128\n",
      "Epoch: 1 [16640/60000 (28%)] \tTrain loss: 2.295, acc: 0.128\n",
      "Epoch: 1 [17920/60000 (30%)] \tTrain loss: 2.295, acc: 0.129\n",
      "Epoch: 1 [19200/60000 (32%)] \tTrain loss: 2.295, acc: 0.130\n",
      "Epoch: 1, time: 0.48 seconds\n",
      "\n",
      "\n",
      "Epoch: 2 [0/60000 (0%)] \tTrain loss: 2.288, acc: 0.133\n",
      "Epoch: 2 [1280/60000 (2%)] \tTrain loss: 2.286, acc: 0.144\n",
      "Epoch: 2 [2560/60000 (4%)] \tTrain loss: 2.286, acc: 0.147\n",
      "Epoch: 2 [3840/60000 (6%)] \tTrain loss: 2.287, acc: 0.146\n",
      "Epoch: 2 [5120/60000 (9%)] \tTrain loss: 2.287, acc: 0.148\n",
      "Epoch: 2 [6400/60000 (11%)] \tTrain loss: 2.286, acc: 0.149\n",
      "Epoch: 2 [7680/60000 (13%)] \tTrain loss: 2.286, acc: 0.151\n",
      "Epoch: 2 [8960/60000 (15%)] \tTrain loss: 2.286, acc: 0.153\n",
      "Epoch: 2 [10240/60000 (17%)] \tTrain loss: 2.285, acc: 0.156\n",
      "Epoch: 2 [11520/60000 (19%)] \tTrain loss: 2.284, acc: 0.159\n",
      "Epoch: 2 [12800/60000 (21%)] \tTrain loss: 2.284, acc: 0.161\n",
      "Epoch: 2 [14080/60000 (23%)] \tTrain loss: 2.284, acc: 0.163\n",
      "Epoch: 2 [15360/60000 (26%)] \tTrain loss: 2.283, acc: 0.164\n",
      "Epoch: 2 [16640/60000 (28%)] \tTrain loss: 2.283, acc: 0.165\n",
      "Epoch: 2 [17920/60000 (30%)] \tTrain loss: 2.282, acc: 0.167\n",
      "Epoch: 2 [19200/60000 (32%)] \tTrain loss: 2.282, acc: 0.169\n",
      "Epoch: 2, time: 0.50 seconds\n",
      "\n",
      "\n",
      "Epoch: 3 [0/60000 (0%)] \tTrain loss: 2.274, acc: 0.172\n",
      "Epoch: 3 [1280/60000 (2%)] \tTrain loss: 2.272, acc: 0.197\n",
      "Epoch: 3 [2560/60000 (4%)] \tTrain loss: 2.271, acc: 0.199\n",
      "Epoch: 3 [3840/60000 (6%)] \tTrain loss: 2.272, acc: 0.197\n",
      "Epoch: 3 [5120/60000 (9%)] \tTrain loss: 2.272, acc: 0.197\n",
      "Epoch: 3 [6400/60000 (11%)] \tTrain loss: 2.271, acc: 0.197\n",
      "Epoch: 3 [7680/60000 (13%)] \tTrain loss: 2.270, acc: 0.199\n",
      "Epoch: 3 [8960/60000 (15%)] \tTrain loss: 2.270, acc: 0.201\n",
      "Epoch: 3 [10240/60000 (17%)] \tTrain loss: 2.269, acc: 0.204\n",
      "Epoch: 3 [11520/60000 (19%)] \tTrain loss: 2.268, acc: 0.206\n",
      "Epoch: 3 [12800/60000 (21%)] \tTrain loss: 2.267, acc: 0.208\n",
      "Epoch: 3 [14080/60000 (23%)] \tTrain loss: 2.266, acc: 0.210\n",
      "Epoch: 3 [15360/60000 (26%)] \tTrain loss: 2.266, acc: 0.211\n",
      "Epoch: 3 [16640/60000 (28%)] \tTrain loss: 2.265, acc: 0.211\n",
      "Epoch: 3 [17920/60000 (30%)] \tTrain loss: 2.264, acc: 0.214\n",
      "Epoch: 3 [19200/60000 (32%)] \tTrain loss: 2.264, acc: 0.216\n",
      "Epoch: 3, time: 0.49 seconds\n",
      "\n",
      "\n",
      "Epoch: 4 [0/60000 (0%)] \tTrain loss: 2.250, acc: 0.219\n",
      "Epoch: 4 [1280/60000 (2%)] \tTrain loss: 2.247, acc: 0.236\n",
      "Epoch: 4 [2560/60000 (4%)] \tTrain loss: 2.247, acc: 0.236\n",
      "Epoch: 4 [3840/60000 (6%)] \tTrain loss: 2.247, acc: 0.238\n",
      "Epoch: 4 [5120/60000 (9%)] \tTrain loss: 2.247, acc: 0.236\n",
      "Epoch: 4 [6400/60000 (11%)] \tTrain loss: 2.245, acc: 0.237\n",
      "Epoch: 4 [7680/60000 (13%)] \tTrain loss: 2.244, acc: 0.238\n",
      "Epoch: 4 [8960/60000 (15%)] \tTrain loss: 2.244, acc: 0.239\n",
      "Epoch: 4 [10240/60000 (17%)] \tTrain loss: 2.242, acc: 0.242\n",
      "Epoch: 4 [11520/60000 (19%)] \tTrain loss: 2.240, acc: 0.244\n",
      "Epoch: 4 [12800/60000 (21%)] \tTrain loss: 2.239, acc: 0.245\n",
      "Epoch: 4 [14080/60000 (23%)] \tTrain loss: 2.238, acc: 0.247\n",
      "Epoch: 4 [15360/60000 (26%)] \tTrain loss: 2.237, acc: 0.246\n",
      "Epoch: 4 [16640/60000 (28%)] \tTrain loss: 2.236, acc: 0.247\n",
      "Epoch: 4 [17920/60000 (30%)] \tTrain loss: 2.234, acc: 0.248\n",
      "Epoch: 4 [19200/60000 (32%)] \tTrain loss: 2.233, acc: 0.249\n",
      "Epoch: 4, time: 0.49 seconds\n",
      "\n",
      "\n",
      "Epoch: 5 [0/60000 (0%)] \tTrain loss: 2.209, acc: 0.279\n",
      "Epoch: 5 [1280/60000 (2%)] \tTrain loss: 2.207, acc: 0.270\n",
      "Epoch: 5 [2560/60000 (4%)] \tTrain loss: 2.206, acc: 0.267\n",
      "Epoch: 5 [3840/60000 (6%)] \tTrain loss: 2.205, acc: 0.269\n",
      "Epoch: 5 [5120/60000 (9%)] \tTrain loss: 2.204, acc: 0.268\n",
      "Epoch: 5 [6400/60000 (11%)] \tTrain loss: 2.202, acc: 0.271\n",
      "Epoch: 5 [7680/60000 (13%)] \tTrain loss: 2.200, acc: 0.272\n",
      "Epoch: 5 [8960/60000 (15%)] \tTrain loss: 2.199, acc: 0.275\n",
      "Epoch: 5 [10240/60000 (17%)] \tTrain loss: 2.196, acc: 0.279\n",
      "Epoch: 5 [11520/60000 (19%)] \tTrain loss: 2.194, acc: 0.282\n",
      "Epoch: 5 [12800/60000 (21%)] \tTrain loss: 2.192, acc: 0.284\n",
      "Epoch: 5 [14080/60000 (23%)] \tTrain loss: 2.189, acc: 0.286\n",
      "Epoch: 5 [15360/60000 (26%)] \tTrain loss: 2.188, acc: 0.287\n",
      "Epoch: 5 [16640/60000 (28%)] \tTrain loss: 2.186, acc: 0.288\n",
      "Epoch: 5 [17920/60000 (30%)] \tTrain loss: 2.183, acc: 0.290\n",
      "Epoch: 5 [19200/60000 (32%)] \tTrain loss: 2.181, acc: 0.292\n",
      "Epoch: 5, time: 0.49 seconds\n",
      "\n",
      "\n",
      "Epoch: 6 [0/60000 (0%)] \tTrain loss: 2.138, acc: 0.341\n",
      "Epoch: 6 [1280/60000 (2%)] \tTrain loss: 2.136, acc: 0.326\n",
      "Epoch: 6 [2560/60000 (4%)] \tTrain loss: 2.135, acc: 0.323\n",
      "Epoch: 6 [3840/60000 (6%)] \tTrain loss: 2.131, acc: 0.325\n",
      "Epoch: 6 [5120/60000 (9%)] \tTrain loss: 2.130, acc: 0.324\n",
      "Epoch: 6 [6400/60000 (11%)] \tTrain loss: 2.125, acc: 0.327\n",
      "Epoch: 6 [7680/60000 (13%)] \tTrain loss: 2.123, acc: 0.327\n",
      "Epoch: 6 [8960/60000 (15%)] \tTrain loss: 2.119, acc: 0.329\n",
      "Epoch: 6 [10240/60000 (17%)] \tTrain loss: 2.114, acc: 0.332\n",
      "Epoch: 6 [11520/60000 (19%)] \tTrain loss: 2.111, acc: 0.334\n",
      "Epoch: 6 [12800/60000 (21%)] \tTrain loss: 2.107, acc: 0.334\n",
      "Epoch: 6 [14080/60000 (23%)] \tTrain loss: 2.102, acc: 0.334\n",
      "Epoch: 6 [15360/60000 (26%)] \tTrain loss: 2.099, acc: 0.334\n",
      "Epoch: 6 [16640/60000 (28%)] \tTrain loss: 2.095, acc: 0.335\n",
      "Epoch: 6 [17920/60000 (30%)] \tTrain loss: 2.091, acc: 0.336\n",
      "Epoch: 6 [19200/60000 (32%)] \tTrain loss: 2.086, acc: 0.337\n",
      "Epoch: 6, time: 0.49 seconds\n",
      "\n",
      "\n",
      "Epoch: 7 [0/60000 (0%)] \tTrain loss: 2.008, acc: 0.372\n",
      "Epoch: 7 [1280/60000 (2%)] \tTrain loss: 2.004, acc: 0.359\n",
      "Epoch: 7 [2560/60000 (4%)] \tTrain loss: 2.000, acc: 0.357\n",
      "Epoch: 7 [3840/60000 (6%)] \tTrain loss: 1.993, acc: 0.362\n",
      "Epoch: 7 [5120/60000 (9%)] \tTrain loss: 1.989, acc: 0.362\n",
      "Epoch: 7 [6400/60000 (11%)] \tTrain loss: 1.981, acc: 0.368\n",
      "Epoch: 7 [7680/60000 (13%)] \tTrain loss: 1.976, acc: 0.368\n",
      "Epoch: 7 [8960/60000 (15%)] \tTrain loss: 1.970, acc: 0.372\n",
      "Epoch: 7 [10240/60000 (17%)] \tTrain loss: 1.961, acc: 0.376\n",
      "Epoch: 7 [11520/60000 (19%)] \tTrain loss: 1.955, acc: 0.380\n",
      "Epoch: 7 [12800/60000 (21%)] \tTrain loss: 1.948, acc: 0.383\n",
      "Epoch: 7 [14080/60000 (23%)] \tTrain loss: 1.940, acc: 0.387\n",
      "Epoch: 7 [15360/60000 (26%)] \tTrain loss: 1.933, acc: 0.390\n",
      "Epoch: 7 [16640/60000 (28%)] \tTrain loss: 1.927, acc: 0.394\n",
      "Epoch: 7 [17920/60000 (30%)] \tTrain loss: 1.919, acc: 0.398\n",
      "Epoch: 7 [19200/60000 (32%)] \tTrain loss: 1.912, acc: 0.402\n",
      "Epoch: 7, time: 0.49 seconds\n",
      "\n",
      "\n",
      "Epoch: 8 [0/60000 (0%)] \tTrain loss: 1.782, acc: 0.510\n",
      "Epoch: 8 [1280/60000 (2%)] \tTrain loss: 1.775, acc: 0.464\n",
      "Epoch: 8 [2560/60000 (4%)] \tTrain loss: 1.768, acc: 0.469\n",
      "Epoch: 8 [3840/60000 (6%)] \tTrain loss: 1.757, acc: 0.477\n",
      "Epoch: 8 [5120/60000 (9%)] \tTrain loss: 1.751, acc: 0.479\n",
      "Epoch: 8 [6400/60000 (11%)] \tTrain loss: 1.739, acc: 0.486\n",
      "Epoch: 8 [7680/60000 (13%)] \tTrain loss: 1.732, acc: 0.489\n",
      "Epoch: 8 [8960/60000 (15%)] \tTrain loss: 1.723, acc: 0.494\n",
      "Epoch: 8 [10240/60000 (17%)] \tTrain loss: 1.712, acc: 0.499\n",
      "Epoch: 8 [11520/60000 (19%)] \tTrain loss: 1.703, acc: 0.503\n",
      "Epoch: 8 [12800/60000 (21%)] \tTrain loss: 1.693, acc: 0.508\n",
      "Epoch: 8 [14080/60000 (23%)] \tTrain loss: 1.682, acc: 0.512\n",
      "Epoch: 8 [15360/60000 (26%)] \tTrain loss: 1.674, acc: 0.516\n",
      "Epoch: 8 [16640/60000 (28%)] \tTrain loss: 1.665, acc: 0.520\n",
      "Epoch: 8 [17920/60000 (30%)] \tTrain loss: 1.655, acc: 0.524\n",
      "Epoch: 8 [19200/60000 (32%)] \tTrain loss: 1.646, acc: 0.528\n",
      "Epoch: 8, time: 0.49 seconds\n",
      "\n",
      "\n",
      "Epoch: 9 [0/60000 (0%)] \tTrain loss: 1.483, acc: 0.604\n",
      "Epoch: 9 [1280/60000 (2%)] \tTrain loss: 1.478, acc: 0.576\n",
      "Epoch: 9 [2560/60000 (4%)] \tTrain loss: 1.471, acc: 0.584\n",
      "Epoch: 9 [3840/60000 (6%)] \tTrain loss: 1.458, acc: 0.595\n",
      "Epoch: 9 [5120/60000 (9%)] \tTrain loss: 1.452, acc: 0.598\n",
      "Epoch: 9 [6400/60000 (11%)] \tTrain loss: 1.438, acc: 0.605\n",
      "Epoch: 9 [7680/60000 (13%)] \tTrain loss: 1.431, acc: 0.608\n",
      "Epoch: 9 [8960/60000 (15%)] \tTrain loss: 1.422, acc: 0.610\n",
      "Epoch: 9 [10240/60000 (17%)] \tTrain loss: 1.411, acc: 0.614\n",
      "Epoch: 9 [11520/60000 (19%)] \tTrain loss: 1.402, acc: 0.618\n",
      "Epoch: 9 [12800/60000 (21%)] \tTrain loss: 1.392, acc: 0.621\n",
      "Epoch: 9 [14080/60000 (23%)] \tTrain loss: 1.381, acc: 0.624\n",
      "Epoch: 9 [15360/60000 (26%)] \tTrain loss: 1.373, acc: 0.626\n",
      "Epoch: 9 [16640/60000 (28%)] \tTrain loss: 1.364, acc: 0.628\n",
      "Epoch: 9 [17920/60000 (30%)] \tTrain loss: 1.355, acc: 0.631\n",
      "Epoch: 9 [19200/60000 (32%)] \tTrain loss: 1.347, acc: 0.634\n",
      "Epoch: 9, time: 0.49 seconds\n",
      "\n",
      "\n",
      "Epoch: 10 [0/60000 (0%)] \tTrain loss: 1.200, acc: 0.677\n",
      "Epoch: 10 [1280/60000 (2%)] \tTrain loss: 1.196, acc: 0.661\n",
      "Epoch: 10 [2560/60000 (4%)] \tTrain loss: 1.191, acc: 0.668\n",
      "Epoch: 10 [3840/60000 (6%)] \tTrain loss: 1.177, acc: 0.679\n",
      "Epoch: 10 [5120/60000 (9%)] \tTrain loss: 1.173, acc: 0.679\n",
      "Epoch: 10 [6400/60000 (11%)] \tTrain loss: 1.160, acc: 0.685\n",
      "Epoch: 10 [7680/60000 (13%)] \tTrain loss: 1.155, acc: 0.686\n",
      "Epoch: 10 [8960/60000 (15%)] \tTrain loss: 1.148, acc: 0.688\n",
      "Epoch: 10 [10240/60000 (17%)] \tTrain loss: 1.140, acc: 0.690\n",
      "Epoch: 10 [11520/60000 (19%)] \tTrain loss: 1.132, acc: 0.693\n",
      "Epoch: 10 [12800/60000 (21%)] \tTrain loss: 1.125, acc: 0.696\n",
      "Epoch: 10 [14080/60000 (23%)] \tTrain loss: 1.115, acc: 0.698\n",
      "Epoch: 10 [15360/60000 (26%)] \tTrain loss: 1.109, acc: 0.699\n",
      "Epoch: 10 [16640/60000 (28%)] \tTrain loss: 1.103, acc: 0.701\n",
      "Epoch: 10 [17920/60000 (30%)] \tTrain loss: 1.096, acc: 0.703\n",
      "Epoch: 10 [19200/60000 (32%)] \tTrain loss: 1.090, acc: 0.704\n",
      "Epoch: 10, time: 0.49 seconds\n",
      "\n",
      "\n",
      "Epoch: 11 [0/60000 (0%)] \tTrain loss: 0.986, acc: 0.745\n",
      "Epoch: 11 [1280/60000 (2%)] \tTrain loss: 0.980, acc: 0.727\n",
      "Epoch: 11 [2560/60000 (4%)] \tTrain loss: 0.980, acc: 0.728\n",
      "Epoch: 11 [3840/60000 (6%)] \tTrain loss: 0.966, acc: 0.736\n",
      "Epoch: 11 [5120/60000 (9%)] \tTrain loss: 0.966, acc: 0.734\n",
      "Epoch: 11 [6400/60000 (11%)] \tTrain loss: 0.955, acc: 0.739\n",
      "Epoch: 11 [7680/60000 (13%)] \tTrain loss: 0.952, acc: 0.739\n",
      "Epoch: 11 [8960/60000 (15%)] \tTrain loss: 0.948, acc: 0.739\n",
      "Epoch: 11 [10240/60000 (17%)] \tTrain loss: 0.943, acc: 0.739\n",
      "Epoch: 11 [11520/60000 (19%)] \tTrain loss: 0.937, acc: 0.740\n",
      "Epoch: 11 [12800/60000 (21%)] \tTrain loss: 0.933, acc: 0.742\n",
      "Epoch: 11 [14080/60000 (23%)] \tTrain loss: 0.925, acc: 0.744\n",
      "Epoch: 11 [15360/60000 (26%)] \tTrain loss: 0.922, acc: 0.744\n",
      "Epoch: 11 [16640/60000 (28%)] \tTrain loss: 0.917, acc: 0.745\n",
      "Epoch: 11 [17920/60000 (30%)] \tTrain loss: 0.913, acc: 0.746\n",
      "Epoch: 11 [19200/60000 (32%)] \tTrain loss: 0.909, acc: 0.746\n",
      "Epoch: 11, time: 0.49 seconds\n",
      "\n",
      "\n",
      "Epoch: 12 [0/60000 (0%)] \tTrain loss: 0.847, acc: 0.760\n",
      "Epoch: 12 [1280/60000 (2%)] \tTrain loss: 0.839, acc: 0.764\n",
      "Epoch: 12 [2560/60000 (4%)] \tTrain loss: 0.842, acc: 0.763\n",
      "Epoch: 12 [3840/60000 (6%)] \tTrain loss: 0.830, acc: 0.769\n",
      "Epoch: 12 [5120/60000 (9%)] \tTrain loss: 0.832, acc: 0.766\n",
      "Epoch: 12 [6400/60000 (11%)] \tTrain loss: 0.823, acc: 0.769\n",
      "Epoch: 12 [7680/60000 (13%)] \tTrain loss: 0.821, acc: 0.769\n",
      "Epoch: 12 [8960/60000 (15%)] \tTrain loss: 0.820, acc: 0.769\n",
      "Epoch: 12 [10240/60000 (17%)] \tTrain loss: 0.816, acc: 0.769\n",
      "Epoch: 12 [11520/60000 (19%)] \tTrain loss: 0.812, acc: 0.770\n",
      "Epoch: 12 [12800/60000 (21%)] \tTrain loss: 0.809, acc: 0.771\n",
      "Epoch: 12 [14080/60000 (23%)] \tTrain loss: 0.803, acc: 0.772\n",
      "Epoch: 12 [15360/60000 (26%)] \tTrain loss: 0.801, acc: 0.772\n",
      "Epoch: 12 [16640/60000 (28%)] \tTrain loss: 0.798, acc: 0.772\n",
      "Epoch: 12 [17920/60000 (30%)] \tTrain loss: 0.795, acc: 0.773\n",
      "Epoch: 12 [19200/60000 (32%)] \tTrain loss: 0.793, acc: 0.774\n",
      "Epoch: 12, time: 0.49 seconds\n",
      "\n",
      "\n",
      "Epoch: 13 [0/60000 (0%)] \tTrain loss: 0.757, acc: 0.786\n",
      "Epoch: 13 [1280/60000 (2%)] \tTrain loss: 0.746, acc: 0.791\n",
      "Epoch: 13 [2560/60000 (4%)] \tTrain loss: 0.751, acc: 0.788\n",
      "Epoch: 13 [3840/60000 (6%)] \tTrain loss: 0.740, acc: 0.793\n",
      "Epoch: 13 [5120/60000 (9%)] \tTrain loss: 0.743, acc: 0.789\n",
      "Epoch: 13 [6400/60000 (11%)] \tTrain loss: 0.735, acc: 0.791\n",
      "Epoch: 13 [7680/60000 (13%)] \tTrain loss: 0.735, acc: 0.791\n",
      "Epoch: 13 [8960/60000 (15%)] \tTrain loss: 0.734, acc: 0.790\n",
      "Epoch: 13 [10240/60000 (17%)] \tTrain loss: 0.732, acc: 0.789\n",
      "Epoch: 13 [11520/60000 (19%)] \tTrain loss: 0.728, acc: 0.790\n",
      "Epoch: 13 [12800/60000 (21%)] \tTrain loss: 0.726, acc: 0.791\n",
      "Epoch: 13 [14080/60000 (23%)] \tTrain loss: 0.721, acc: 0.792\n",
      "Epoch: 13 [15360/60000 (26%)] \tTrain loss: 0.720, acc: 0.792\n",
      "Epoch: 13 [16640/60000 (28%)] \tTrain loss: 0.718, acc: 0.792\n",
      "Epoch: 13 [17920/60000 (30%)] \tTrain loss: 0.715, acc: 0.793\n",
      "Epoch: 13 [19200/60000 (32%)] \tTrain loss: 0.714, acc: 0.793\n",
      "Epoch: 13, time: 0.49 seconds\n",
      "\n",
      "\n",
      "Epoch: 14 [0/60000 (0%)] \tTrain loss: 0.695, acc: 0.797\n",
      "Epoch: 14 [1280/60000 (2%)] \tTrain loss: 0.680, acc: 0.808\n",
      "Epoch: 14 [2560/60000 (4%)] \tTrain loss: 0.685, acc: 0.803\n",
      "Epoch: 14 [3840/60000 (6%)] \tTrain loss: 0.675, acc: 0.808\n",
      "Epoch: 14 [5120/60000 (9%)] \tTrain loss: 0.679, acc: 0.805\n",
      "Epoch: 14 [6400/60000 (11%)] \tTrain loss: 0.671, acc: 0.807\n",
      "Epoch: 14 [7680/60000 (13%)] \tTrain loss: 0.672, acc: 0.807\n",
      "Epoch: 14 [8960/60000 (15%)] \tTrain loss: 0.672, acc: 0.806\n",
      "Epoch: 14 [10240/60000 (17%)] \tTrain loss: 0.670, acc: 0.806\n",
      "Epoch: 14 [11520/60000 (19%)] \tTrain loss: 0.667, acc: 0.808\n",
      "Epoch: 14 [12800/60000 (21%)] \tTrain loss: 0.666, acc: 0.808\n",
      "Epoch: 14 [14080/60000 (23%)] \tTrain loss: 0.661, acc: 0.809\n",
      "Epoch: 14 [15360/60000 (26%)] \tTrain loss: 0.660, acc: 0.809\n",
      "Epoch: 14 [16640/60000 (28%)] \tTrain loss: 0.658, acc: 0.809\n",
      "Epoch: 14 [17920/60000 (30%)] \tTrain loss: 0.657, acc: 0.809\n",
      "Epoch: 14 [19200/60000 (32%)] \tTrain loss: 0.656, acc: 0.809\n",
      "Epoch: 14, time: 0.49 seconds\n",
      "\n",
      "\n",
      "Exporting MNIST model to S3\n"
     ]
    }
   ],
   "source": [
    "for logline in TrainerClient().get_job_logs(job_id, follow=True):\n",
    "    print(logline)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c0695485-1590-49f2-a97a-e003891fc550",
   "metadata": {},
   "source": [
    "## Evaluate the Trained Model\n",
    "\n",
    "Download the trained model from S3 to evaluate it.\n",
    "\n",
    "We will use test images from the MNIST dataset for prediction.\n",
    "\n",
    "- <span style=\"color:green\">Green label</span> indicate correct predictions.\n",
    "- <span style=\"color:red\">Red label</span> indicate incorrect predictions, with the correct value shown in parentheses."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "fd83db0a-d2ca-4a93-b03f-2ac1cfe03c19",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-10-18T00:23:24.217640Z",
     "iopub.status.busy": "2025-10-18T00:23:24.217176Z",
     "iopub.status.idle": "2025-10-18T00:23:26.912502Z",
     "shell.execute_reply": "2025-10-18T00:23:26.911145Z",
     "shell.execute_reply.started": "2025-10-18T00:23:24.217595Z"
    }
   },
   "outputs": [],
   "source": [
    "import boto3\n",
    "\n",
    "boto3.client(\"s3\").download_file(BUCKET, MODEL, MODEL)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "cda451fb-b96a-42da-aebf-59a1d6c3ec35",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-10-18T00:23:35.067374Z",
     "iopub.status.busy": "2025-10-18T00:23:35.066044Z",
     "iopub.status.idle": "2025-10-18T00:23:35.427791Z",
     "shell.execute_reply": "2025-10-18T00:23:35.427555Z",
     "shell.execute_reply.started": "2025-10-18T00:23:35.067319Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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SNIYY4wxxhhjjDHlh0UHY4wxxhhjjDHG5AWLDsYY8/+3d5/PklXVG8d7Bgyo/BTFhCIimBjJwVgKYg6lVvnGP893vlFLxVillqlUgg5hAEHMYg6gIhjgV5/NPNdDe2emu+f2vX2d51t16vTtcPrOubP2XuvZa61dSimllFJKWQsVHUoppZRSSimllLIWKjqUUkoppZRSSillLVR0KKWUUkoppZRSylo4fZE3Pfroo7P7779/duaZZ84OHDiwnt/kfwi7kP7lL3+ZnXPOObODB6vrlL2jtrsctd2ySdR+l6P2WzaF2u5y1HbLplDbXZ/tLiQ6uPnnnnvukr9G+fnPfz578YtfvNe/RjmFqe2uRm23bAK139Wo/Za9pra7GrXdstfUdtdnuwvJidSesjy9b2Wv6f/B1eh9K5tA/x+uRu9b2Wv6f3A1et/KXtP/g+u7bwuJDk0vWY3et7LX9P/gavS+lU2g/w9Xo/et7DX9P7gavW9lr+n/wfXdtxZOlVJKKaWUUkopZS1UdCillFJKKaWUUspaqOhQSimllFJKKaWUtVDRoZRSSimllFJKKWuhokMppZRSSimllFLWQkWHUkoppZRSSimlrIWKDqWUUkoppZRSSlkLp6/nsqWUUkoppZSd4vTTT5895SlPmZ122mmzZzzjGbOnPe1psyc96Unjsec9PuOMM2YHD26/pvjPf/5z9pe//GX2j3/8Y/b3v/999te//nX2r3/9azx++OGHZ48++uh4zbmUsrccOHBg2HTs/v/+7//G+elPf/rsmc985hgHvMfBtv/0pz/NHnroodkjjzwye/DBB4dts2fHJlDRoZRSSimllA2HoPCc5zxn9tSnPnV2/vnnz84999whOFx44YXjeUHJ85///BGYTBGU4IEHHpjde++9sz//+c+zX//617P77rtvBCn333//7De/+c0ITgQrBIhSyt5y8ODB2ZlnnjlEhrPOOmv26le/evbsZz979pKXvGR26NChMR4QHryP3R4+fHjY8u9+97vZPffcM0RFNk+M2AQhsaJDKWVfEVU3A+1jjz02BtPpuZSyd7aZACfnrLrm5yls9t///vew29puKf8Nu2FDzsQEIoNgQ/DxvOc9b6x4Eh+IDR6fc845Q5SY2lM+L/ggLAhk/CxQEZj87W9/G2crqgQHK6RscxMClVJOVQ4cODB78pOf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",
      "text/plain": [
       "<Figure size 1500x500 with 20 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import mlx.core as mx\n",
    "import mlx.nn as nn\n",
    "import matplotlib.pyplot as plt\n",
    "from mlx.data.datasets import load_mnist\n",
    "\n",
    "\n",
    "# Load test dataset and take the random batch from it.\n",
    "test_batch = (\n",
    "    load_mnist(train=False)\n",
    "    .key_transform(\"image\", lambda x: (x.astype(\"float32\") / 255.0).ravel())\n",
    "    .batch(20)[mx.random.randint(10, 500)]\n",
    ")\n",
    "\n",
    "class MLP(nn.Module):\n",
    "    def __init__(self, in_dims: int, hidden_dims: int, num_layers: int, out_dims: int):\n",
    "        super().__init__()\n",
    "        layer_sizes = [in_dims] + [hidden_dims] * num_layers + [out_dims]\n",
    "        self.layers = [\n",
    "            nn.Linear(idim, odim)\n",
    "            for idim, odim in zip(layer_sizes[:-1], layer_sizes[1:])\n",
    "        ]\n",
    "\n",
    "    def __call__(self, x):\n",
    "        for layer in self.layers[:-1]:\n",
    "            x = nn.relu(layer(x))\n",
    "        return self.layers[-1](x)\n",
    "\n",
    "# Load weights from the trained model.\n",
    "model = MLP(\n",
    "    in_dims=test_batch[\"image\"][0].shape[-1],\n",
    "    hidden_dims=32,\n",
    "    num_layers=2,\n",
    "    out_dims=10,\n",
    ").load_weights(MODEL)\n",
    "\n",
    "# Send test batch to the pre-trained MLP model.\n",
    "x = mx.array(test_batch[\"image\"])\n",
    "output = model(x)\n",
    "fig = plt.figure(figsize=(15, 5))\n",
    "for i in range(20):\n",
    "    # Format the input image and the model output.\n",
    "    image = test_batch[\"image\"][i].reshape((28, 28))\n",
    "    pred_label = mx.argmax(output[i])\n",
    "\n",
    "    # Add data to the plot.\n",
    "    ax = fig.add_subplot(4, 5, i + 1, xticks=[], yticks=[])\n",
    "    ax.imshow(image, cmap=\"gray\")\n",
    "    if test_batch[\"label\"][i] == pred_label:\n",
    "        ax.set_title(test_batch[\"label\"][i], color=\"green\")\n",
    "    else:\n",
    "        ax.set_title(\"{} ({})\".format(pred_label, test_batch[\"label\"][i]), color=\"red\")\n",
    "\n",
    "    ax.title.set_fontsize(20)\n",
    "    fig.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2a132965-9252-466f-af96-34dcafb84d76",
   "metadata": {},
   "source": [
    "## Delete the TrainJob\n",
    "\n",
    "When TrainJob is finished, you can delete the resource."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c8270e6a-80f9-49e8-81be-8ea2de9d204c",
   "metadata": {},
   "outputs": [],
   "source": [
    "TrainerClient().delete_job(job_id)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
